package aplicacao.campeonato;

import controle.PontoProdutor;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Observable;
import java.util.Observer;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import modelo.Luta;
import modelo.Parametros;
import modelo.excecoes.DAOException;
import modelo.excecoes.LutaComandoException;

/**
 * Classe para placar eletrônico
 */
public class Placar extends javax.swing.JDialog implements Observer, 
        KeyListener{

    /** Referência para a luta ativa neste placar*/
    private Luta lutaAtiva = null;
    
    /** Timer para piscar o jlabel do vencedor */
    private Timer blinkVencedor = null;
    
    /** Controle de exibição do relógio do intervalo */
    private boolean exibiuIntervalo = false;
    
    /** Construtor da classe placar */
    public Placar(java.awt.Dialog parent, boolean modal, Luta lutaAtiva) {
        super(parent, modal);
        initComponents();
                
        // Luta deste placar
        this.lutaAtiva = lutaAtiva;
        
        // Ajustando os dados do placar
        this.atualizaPlacar();
        
        // Observando a luta atual
        Luta.addObserver(this);
        
        // Ouvindo as teclas de controle
        this.addKeyListener(this);
        
        // Exibindo o placar
        this.setVisible(true);

        // Centralizando
        this.setLocationRelativeTo(null);
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jpMostradores = new javax.swing.JPanel();
        jpLuta = new javax.swing.JPanel();
        jlLuta = new javax.swing.JLabel();
        jpRound = new javax.swing.JPanel();
        jlRound = new javax.swing.JLabel();
        jpTempo = new javax.swing.JPanel();
        jlTempo = new javax.swing.JLabel();
        jpVermelhoPontos = new javax.swing.JPanel();
        jlVermelhoPontos = new javax.swing.JLabel();
        jpAzulPontos = new javax.swing.JPanel();
        jlAzulPontos = new javax.swing.JLabel();
        jpVermelhoFaltas = new javax.swing.JPanel();
        jlVermelhoFalta1 = new javax.swing.JLabel();
        jlVermelhoFalta2 = new javax.swing.JLabel();
        jlVermelhoFalta3 = new javax.swing.JLabel();
        jlVermelhoFalta4 = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jpVermelhoArbitro2 = new javax.swing.JPanel();
        jpVermelhoArbitro3 = new javax.swing.JPanel();
        jpVermelhoArbitro4 = new javax.swing.JPanel();
        jpVermelhoArbitro1 = new javax.swing.JPanel();
        jpAzulFaltas2 = new javax.swing.JPanel();
        jlAzulFalta1 = new javax.swing.JLabel();
        jlAzulFalta2 = new javax.swing.JLabel();
        jlAzulFalta3 = new javax.swing.JLabel();
        jlAzulFalta4 = new javax.swing.JLabel();
        jSeparator5 = new javax.swing.JSeparator();
        jpAzulArbitro1 = new javax.swing.JPanel();
        jpAzulArbitro2 = new javax.swing.JPanel();
        jpAzulArbitro3 = new javax.swing.JPanel();
        jpAzulArbitro4 = new javax.swing.JPanel();
        jpAvisos = new javax.swing.JPanel();
        jlAvisos = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setUndecorated(true);

        jpLuta.setBorder(javax.swing.BorderFactory.createTitledBorder(null, " Luta ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 48))); // NOI18N

        jlLuta.setFont(new java.awt.Font("Arial", 0, 150));
        jlLuta.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlLuta.setText("0");

        javax.swing.GroupLayout jpLutaLayout = new javax.swing.GroupLayout(jpLuta);
        jpLuta.setLayout(jpLutaLayout);
        jpLutaLayout.setHorizontalGroup(
            jpLutaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpLutaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlLuta, javax.swing.GroupLayout.DEFAULT_SIZE, 253, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpLutaLayout.setVerticalGroup(
            jpLutaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpLutaLayout.createSequentialGroup()
                .addComponent(jlLuta, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(17, Short.MAX_VALUE))
        );

        jpRound.setBorder(javax.swing.BorderFactory.createTitledBorder(null, " Round ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 48))); // NOI18N

        jlRound.setFont(new java.awt.Font("Arial", 0, 150));
        jlRound.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlRound.setText("0");
        jlRound.setFocusable(false);

        javax.swing.GroupLayout jpRoundLayout = new javax.swing.GroupLayout(jpRound);
        jpRound.setLayout(jpRoundLayout);
        jpRoundLayout.setHorizontalGroup(
            jpRoundLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRoundLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlRound, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpRoundLayout.setVerticalGroup(
            jpRoundLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRoundLayout.createSequentialGroup()
                .addComponent(jlRound, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(13, Short.MAX_VALUE))
        );

        jpTempo.setBorder(javax.swing.BorderFactory.createTitledBorder(null, " Tempo ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 1, 48))); // NOI18N

        jlTempo.setFont(new java.awt.Font("Arial", 0, 150));
        jlTempo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlTempo.setText("00:00");
        jlTempo.setFocusable(false);

        javax.swing.GroupLayout jpTempoLayout = new javax.swing.GroupLayout(jpTempo);
        jpTempo.setLayout(jpTempoLayout);
        jpTempoLayout.setHorizontalGroup(
            jpTempoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpTempoLayout.createSequentialGroup()
                .addContainerGap(16, Short.MAX_VALUE)
                .addComponent(jlTempo)
                .addContainerGap())
        );
        jpTempoLayout.setVerticalGroup(
            jpTempoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpTempoLayout.createSequentialGroup()
                .addComponent(jlTempo, javax.swing.GroupLayout.PREFERRED_SIZE, 135, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jpMostradoresLayout = new javax.swing.GroupLayout(jpMostradores);
        jpMostradores.setLayout(jpMostradoresLayout);
        jpMostradoresLayout.setHorizontalGroup(
            jpMostradoresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpMostradoresLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpLuta, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(jpRound, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jpTempo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jpMostradoresLayout.setVerticalGroup(
            jpMostradoresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpMostradoresLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpMostradoresLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jpLuta, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpRound, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpTempo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        jpVermelhoPontos.setBackground(new java.awt.Color(255, 0, 0));

        jlVermelhoPontos.setFont(new java.awt.Font("Arial", 1, 400)); // NOI18N
        jlVermelhoPontos.setForeground(new java.awt.Color(255, 255, 0));
        jlVermelhoPontos.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlVermelhoPontos.setText("0");
        jlVermelhoPontos.setFocusable(false);

        javax.swing.GroupLayout jpVermelhoPontosLayout = new javax.swing.GroupLayout(jpVermelhoPontos);
        jpVermelhoPontos.setLayout(jpVermelhoPontosLayout);
        jpVermelhoPontosLayout.setHorizontalGroup(
            jpVermelhoPontosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpVermelhoPontosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlVermelhoPontos, javax.swing.GroupLayout.DEFAULT_SIZE, 473, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpVermelhoPontosLayout.setVerticalGroup(
            jpVermelhoPontosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpVermelhoPontosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlVermelhoPontos, javax.swing.GroupLayout.PREFERRED_SIZE, 337, Short.MAX_VALUE)
                .addContainerGap())
        );

        jpAzulPontos.setBackground(new java.awt.Color(0, 0, 255));

        jlAzulPontos.setFont(new java.awt.Font("Arial", 1, 400));
        jlAzulPontos.setForeground(new java.awt.Color(255, 255, 0));
        jlAzulPontos.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jlAzulPontos.setText("0");
        jlAzulPontos.setFocusable(false);

        javax.swing.GroupLayout jpAzulPontosLayout = new javax.swing.GroupLayout(jpAzulPontos);
        jpAzulPontos.setLayout(jpAzulPontosLayout);
        jpAzulPontosLayout.setHorizontalGroup(
            jpAzulPontosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAzulPontosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlAzulPontos, javax.swing.GroupLayout.DEFAULT_SIZE, 473, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpAzulPontosLayout.setVerticalGroup(
            jpAzulPontosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAzulPontosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlAzulPontos, javax.swing.GroupLayout.PREFERRED_SIZE, 337, Short.MAX_VALUE)
                .addContainerGap())
        );

        jlVermelhoFalta1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlVermelhoFalta2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlVermelhoFalta3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlVermelhoFalta4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jpVermelhoArbitro2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpVermelhoArbitro2Layout = new javax.swing.GroupLayout(jpVermelhoArbitro2);
        jpVermelhoArbitro2.setLayout(jpVermelhoArbitro2Layout);
        jpVermelhoArbitro2Layout.setHorizontalGroup(
            jpVermelhoArbitro2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpVermelhoArbitro2Layout.setVerticalGroup(
            jpVermelhoArbitro2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpVermelhoArbitro3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpVermelhoArbitro3Layout = new javax.swing.GroupLayout(jpVermelhoArbitro3);
        jpVermelhoArbitro3.setLayout(jpVermelhoArbitro3Layout);
        jpVermelhoArbitro3Layout.setHorizontalGroup(
            jpVermelhoArbitro3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpVermelhoArbitro3Layout.setVerticalGroup(
            jpVermelhoArbitro3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpVermelhoArbitro4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpVermelhoArbitro4Layout = new javax.swing.GroupLayout(jpVermelhoArbitro4);
        jpVermelhoArbitro4.setLayout(jpVermelhoArbitro4Layout);
        jpVermelhoArbitro4Layout.setHorizontalGroup(
            jpVermelhoArbitro4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpVermelhoArbitro4Layout.setVerticalGroup(
            jpVermelhoArbitro4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpVermelhoArbitro1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpVermelhoArbitro1Layout = new javax.swing.GroupLayout(jpVermelhoArbitro1);
        jpVermelhoArbitro1.setLayout(jpVermelhoArbitro1Layout);
        jpVermelhoArbitro1Layout.setHorizontalGroup(
            jpVermelhoArbitro1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpVermelhoArbitro1Layout.setVerticalGroup(
            jpVermelhoArbitro1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jpVermelhoFaltasLayout = new javax.swing.GroupLayout(jpVermelhoFaltas);
        jpVermelhoFaltas.setLayout(jpVermelhoFaltasLayout);
        jpVermelhoFaltasLayout.setHorizontalGroup(
            jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpVermelhoFaltasLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jpVermelhoFaltasLayout.createSequentialGroup()
                            .addComponent(jlVermelhoFalta1)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlVermelhoFalta2)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlVermelhoFalta3)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlVermelhoFalta4)))
                    .addGroup(jpVermelhoFaltasLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jpVermelhoArbitro1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpVermelhoArbitro2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpVermelhoArbitro3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpVermelhoArbitro4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpVermelhoFaltasLayout.setVerticalGroup(
            jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpVermelhoFaltasLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jlVermelhoFalta4)
                    .addComponent(jlVermelhoFalta3)
                    .addComponent(jlVermelhoFalta2)
                    .addComponent(jlVermelhoFalta1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(7, 7, 7)
                .addGroup(jpVermelhoFaltasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jpVermelhoArbitro2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpVermelhoArbitro3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpVermelhoArbitro4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpVermelhoArbitro1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jlAzulFalta1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlAzulFalta2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlAzulFalta3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jlAzulFalta4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/aplicacao/imagens/SemFalta.JPG"))); // NOI18N

        jpAzulArbitro1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpAzulArbitro1Layout = new javax.swing.GroupLayout(jpAzulArbitro1);
        jpAzulArbitro1.setLayout(jpAzulArbitro1Layout);
        jpAzulArbitro1Layout.setHorizontalGroup(
            jpAzulArbitro1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpAzulArbitro1Layout.setVerticalGroup(
            jpAzulArbitro1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpAzulArbitro2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpAzulArbitro2Layout = new javax.swing.GroupLayout(jpAzulArbitro2);
        jpAzulArbitro2.setLayout(jpAzulArbitro2Layout);
        jpAzulArbitro2Layout.setHorizontalGroup(
            jpAzulArbitro2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpAzulArbitro2Layout.setVerticalGroup(
            jpAzulArbitro2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpAzulArbitro3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpAzulArbitro3Layout = new javax.swing.GroupLayout(jpAzulArbitro3);
        jpAzulArbitro3.setLayout(jpAzulArbitro3Layout);
        jpAzulArbitro3Layout.setHorizontalGroup(
            jpAzulArbitro3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpAzulArbitro3Layout.setVerticalGroup(
            jpAzulArbitro3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        jpAzulArbitro4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jpAzulArbitro4Layout = new javax.swing.GroupLayout(jpAzulArbitro4);
        jpAzulArbitro4.setLayout(jpAzulArbitro4Layout);
        jpAzulArbitro4Layout.setHorizontalGroup(
            jpAzulArbitro4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 76, Short.MAX_VALUE)
        );
        jpAzulArbitro4Layout.setVerticalGroup(
            jpAzulArbitro4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 11, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jpAzulFaltas2Layout = new javax.swing.GroupLayout(jpAzulFaltas2);
        jpAzulFaltas2.setLayout(jpAzulFaltas2Layout);
        jpAzulFaltas2Layout.setHorizontalGroup(
            jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAzulFaltas2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jSeparator5, javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jpAzulFaltas2Layout.createSequentialGroup()
                            .addComponent(jlAzulFalta1)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlAzulFalta2)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlAzulFalta3)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jlAzulFalta4)))
                    .addGroup(jpAzulFaltas2Layout.createSequentialGroup()
                        .addComponent(jpAzulArbitro1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpAzulArbitro2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpAzulArbitro3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jpAzulArbitro4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpAzulFaltas2Layout.setVerticalGroup(
            jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAzulFaltas2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jlAzulFalta4)
                    .addComponent(jlAzulFalta3)
                    .addComponent(jlAzulFalta2)
                    .addComponent(jlAzulFalta1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpAzulFaltas2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jpAzulArbitro1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpAzulArbitro2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpAzulArbitro3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpAzulArbitro4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpAvisos.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jlAvisos.setFont(new java.awt.Font("Arial", 0, 28));
        jlAvisos.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

        javax.swing.GroupLayout jpAvisosLayout = new javax.swing.GroupLayout(jpAvisos);
        jpAvisos.setLayout(jpAvisosLayout);
        jpAvisosLayout.setHorizontalGroup(
            jpAvisosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAvisosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlAvisos, javax.swing.GroupLayout.DEFAULT_SIZE, 234, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpAvisosLayout.setVerticalGroup(
            jpAvisosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAvisosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jlAvisos, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jpVermelhoFaltas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jpAvisos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jpAzulFaltas2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jpVermelhoPontos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jpAzulPontos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jpMostradores, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jpAzulPontos, jpVermelhoPontos});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpMostradores, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jpVermelhoPontos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpAzulPontos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jpAzulFaltas2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jpVermelhoFaltas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(19, 19, 19)
                        .addComponent(jpAvisos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jpAzulPontos, jpVermelhoPontos});

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /** Método chamado pelas classe observadas */
    @Override
    public void update(Observable o, Object arg) {
        
        /* Se veio do ponto produtor deve acender/apagar o led do arbitro */
        if(o instanceof PontoProdutor){
            
            // Convertendo o valor recebido para um array de objects
            int[] ledArbitros = (int[]) arg;
            
            Color cor;
            int arbitro = ledArbitros[2];
            
            // Definindo a cor de acordo com o estado do botão
            if(ledArbitros[0] == 0)
                cor = util.Util.string2Color("212,208,200");
            else
                cor = util.Util.string2Color("255,255,0");
            
            // leds do lutador vermelho
            if(ledArbitros[1] == 1){

                if(arbitro == Parametros.getInstance().getIdControle1())
                    jpVermelhoArbitro1.setBackground(cor);

                if(arbitro == Parametros.getInstance().getIdControle2())
                    jpVermelhoArbitro2.setBackground(cor);

                if(arbitro == Parametros.getInstance().getIdControle3())
                    jpVermelhoArbitro3.setBackground(cor);            

                if(arbitro == Parametros.getInstance().getIdControle4())
                    jpVermelhoArbitro4.setBackground(cor);            
            }

            // leds do lutador azul
            if(ledArbitros[1] == 2){

                if(arbitro == Parametros.getInstance().getIdControle1())
                    jpAzulArbitro1.setBackground(cor);

                if(arbitro == Parametros.getInstance().getIdControle2())
                    jpAzulArbitro2.setBackground(cor);

                if(arbitro == Parametros.getInstance().getIdControle3())
                    jpAzulArbitro3.setBackground(cor);

                if(arbitro == Parametros.getInstance().getIdControle4())
                    jpAzulArbitro4.setBackground(cor);

            }
            
        }
        
        /* Se não veio do ponto produtor, atualiza o placar */
        this.atualizaPlacar();           
        
    }
        
    /**
     * Atualiza os dados do placar, com exceção dos leds dos arbitros
     */
    private void atualizaPlacar(){
        
        // Pegando a luta que notificou
        Luta luta = this.lutaAtiva;

        // Criando as imagens das faltas
        Icon kamtchon = new ImageIcon(getClass().getResource(
                "/aplicacao/imagens/kamtchon.JPG"));
        Icon kyongo = new ImageIcon(getClass().getResource(
                "/aplicacao/imagens/kyongo.JPG"));
        Icon semFalta = new ImageIcon(getClass().getResource(
                "/aplicacao/imagens/SemFalta.JPG"));

        /* Ajustando o tamanho da fonte do placar de 
         acordo com a quantidade de pontos*/
        if(luta.getPontosLutador1() < -9){
            jlVermelhoPontos.setFont(new java.awt.Font("Arial", 1, 300));
        } else {
            jlVermelhoPontos.setFont(new java.awt.Font("Arial", 1, 400));
        }

        /* Ajustando o tamanho da fonte do placar de 
         acordo com a quantidade de pontos*/
        if(luta.getPontosLutador2() < -9){
            jlAzulPontos.setFont(new java.awt.Font("Arial", 1, 300));
        } else {
            jlAzulPontos.setFont(new java.awt.Font("Arial", 1, 400));
        }

        // ID da luta
        jlLuta.setText(""+luta.getIdLutaCampeonato());

        // Pontos do lutador vermelho (Lutador1)
        jlVermelhoPontos.setText(""+luta.getPontosLutador1());

        // Pontos do lutador azul (Lutador2)
        jlAzulPontos.setText(""+luta.getPontosLutador2());

        // Round atual
        jlRound.setText(""+luta.getRoundAtual());

        // Tempo de luta
        jlTempo.setText(new SimpleDateFormat("mm:ss").format(
                new Date(luta.getTempoLuta())));

        // Se for GOLDEN POINT informa nasinformações
        if(luta.isGoldenPoint()){
            jlAvisos.setForeground(util.Util.string2Color("255,255,0"));
            jlAvisos.setText("GOLDEN POINT");
        }

        /* Se está no intervalo, ainda restam rounds (sem ser empate)
         e ainda não exibiu o display, o exibi*/
        if(lutaAtiva.isIntervalo() && !this.exibiuIntervalo){
            if(!lutaAtiva.isEncerrada()){
                new DisplayTempo( this, true, lutaAtiva, 2);
                this.exibiuIntervalo = true;                
            }

        } else {
            if(!this.lutaAtiva.isIntervalo())
                this.exibiuIntervalo = false;
        }

        // Se existe um vencedor, avisa e encerra a luta
        if(luta.getLutadorVencedor() != null){

            if(luta.getLutadorVencedor().equals(luta.getLutador1()))
                piscarVencedor(jlVermelhoPontos);
            else
                piscarVencedor(jlAzulPontos);

            Luta.deleteObserver(this);
        }

        // Marcando WOs
        if(luta.isWoLutador1()){
            jlVermelhoPontos.setFont(new java.awt.Font("Arial", 1, 250));
            jlVermelhoPontos.setText("wo");
        }

        if(luta.isWoLutador2()){
            jlAzulPontos.setFont(new java.awt.Font("Arial", 1, 250));
            jlAzulPontos.setText("wo");
        }

        // Redesenhando faltas
        jlVermelhoFalta1.setIcon(semFalta);
        jlVermelhoFalta2.setIcon(semFalta);
        jlVermelhoFalta3.setIcon(semFalta);
        jlVermelhoFalta4.setIcon(semFalta);

        jlAzulFalta1.setIcon(semFalta);
        jlAzulFalta2.setIcon(semFalta);
        jlAzulFalta3.setIcon(semFalta);
        jlAzulFalta4.setIcon(semFalta);

        // Lutador Vermelho

        // Kamtchons
        if(luta.getKamtchonLutador1() > 3){
            jlVermelhoFalta4.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador1() > 2){
            jlVermelhoFalta3.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador1() > 1){
            jlVermelhoFalta2.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador1() > 0){
            jlVermelhoFalta1.setIcon(kamtchon);
        }

        // Kyongos
        if(luta.getKyongoLutador1() == 1){
            if(luta.getKamtchonLutador1() == 3 ){
                jlVermelhoFalta4.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador1() == 2){
                jlVermelhoFalta3.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador1() == 1){
                jlVermelhoFalta2.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador1() == 0){
                jlVermelhoFalta1.setIcon(kyongo);
            }

        }

        // Lutador Azul
        // Kamtchons
        if(luta.getKamtchonLutador2() > 3){
            jlAzulFalta4.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador2() > 2){
            jlAzulFalta3.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador2() > 1){
            jlAzulFalta2.setIcon(kamtchon);
        }

        if(luta.getKamtchonLutador2() > 0){
            jlAzulFalta1.setIcon(kamtchon);
        }

        // Kyongos
        if(luta.getKyongoLutador2() == 1){
            if(luta.getKamtchonLutador2() == 3 ){
                jlAzulFalta4.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador2() == 2){
                jlAzulFalta3.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador2() == 1){
                jlAzulFalta2.setIcon(kyongo);
            }

            if(luta.getKamtchonLutador2() == 0){
                jlAzulFalta1.setIcon(kyongo);
            }

        }
        
        
    }

    @Override
    @SuppressWarnings("empty-statement")
    public void keyTyped(KeyEvent e) {
        ; // não faz nada
    }

    @Override
    @SuppressWarnings("empty-statement")
    public void keyPressed(KeyEvent e) {
        ; // não faz nada
    }

    /**
     * Controle da luta via teclado 
     */
    @Override
    public void keyReleased(KeyEvent e) {
        try {
            switch (e.getKeyCode()) {

                case 112:
                    // F1 + Ponto Lutador Vermelho (1)
                    lutaAtiva.addPontoLutador1(1);
                    break;
                case 113:
                    // F2 - Ponto Lutador Vermelho (1)
                    lutaAtiva.subPontoLutador1(1);
                    break;
                case 114:
                    // F3 + Kyongo Lutador Vermelho (1)
                    lutaAtiva.addKyongoLutador1();
                    break;
                case 115:
                    // F4 - Kyongo Lutador Vermelho (1)
                    lutaAtiva.subKyongoLutador1();
                    break;
                case 116:
                    // F5 + Kamtchon Lutador Vermelho (1)
                    lutaAtiva.addKamtchonLutador1();
                    break;
                case 117:
                    // F6 - Kamtchon Lutador Vermelho (1)
                    lutaAtiva.subKamtchonLutador1();
                    break;
                case 118:
                    // F7 + Ponto Lutador Azul (2)
                    lutaAtiva.addPontoLutador2(1);
                    break;
                case 119:
                    // F8 - Ponto Lutador Azul (2)
                    lutaAtiva.subPontoLutador2(1);
                    break;
                case 120:
                    // F9 + Kyongo Lutador Azul (2)
                    lutaAtiva.addKyongoLutador2();
                    break;
                case 121:
                    // F10 - Kyongo Lutador Azul (2)
                    lutaAtiva.subKyongoLutador2();
                    break;
                case 122:
                    // F11 + Kamtchon Lutador Azul (2)
                    lutaAtiva.addKamtchonLutador2();
                    break;
                case 123:
                    // F12 + Kamtchon Lutador Azul (2)
                    lutaAtiva.subKamtchonLutador2();
                    break;
                case 69:
                    // E Encerrar a luta
                    try{
                        lutaAtiva.encerrar();
                    } catch(DAOException ex){
                        JOptionPane.showMessageDialog( this, ex.getMessage(),
                                "Erro!", JOptionPane.ERROR_MESSAGE);
                    }
                    break;
                case 73:
                    // I Iniciar luta
                    lutaAtiva.iniciar();

                    /* Se a luta está ativa adiciona o placar como
                    observador do produto de pontos */
                    if(lutaAtiva.isAtiva())
                        lutaAtiva.getPontoProdutor().addObserver(this);                    
                    
                    break;
                case 80:
                    // P Pausar Luta
                    if (this.lutaAtiva.isPausada()) {
                        lutaAtiva.continuar();
                    } else {
                        lutaAtiva.pausar();
                    }
                    break;
                case 77:
                    // M Tempo medico
                    new DisplayTempo( this, true, this.lutaAtiva, 1);
                    break;

                case 87:
                    // W  WO
                    
                    // Lança a tela para seta o WO
                    new DefineWO(this, true, this.lutaAtiva);
                    break;
                    
                case 86:
                    // V  Vencedor
                    
                    // Lança a tela para a definição do vencedor
                    new DefineVencedor(this, true, this.lutaAtiva);
                    break;   

                case 70:
                    // F  Fechar placar sem encerrar a luta                   
                    if(this.lutaAtiva.isAtiva()) {
                        JOptionPane.showMessageDialog( this, "Não é possível " +
                                "fechar o placar com a luta ativa");
                    } else {
                        this.dispose();
                    }
                    
                    break;                    
                    
            }
        } catch (LutaComandoException ex) {
            JOptionPane.showMessageDialog( this, ex.getMessage(), "Erro", 
                    JOptionPane.ERROR_MESSAGE);
        } catch (DAOException ex){
            JOptionPane.showMessageDialog( this, ex.getMessage(), "Erro", 
                    JOptionPane.ERROR_MESSAGE);            
            throw new RuntimeException("Erro no acesso ao banco de dados");
        }
        
    }
    
    /**
     * Método para piscar o mostrador de pontos do vencedor
     */
    private void piscarVencedor(final JLabel vencedor){

        blinkVencedor = new Timer( 300, new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (vencedor.isVisible() == true) {
                    vencedor.setVisible(false);
                }else{
                    vencedor.setVisible(true);
                }                 
            }
        });
        
        blinkVencedor.start();
        
    }
        
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator5;
    private javax.swing.JLabel jlAvisos;
    private javax.swing.JLabel jlAzulFalta1;
    private javax.swing.JLabel jlAzulFalta2;
    private javax.swing.JLabel jlAzulFalta3;
    private javax.swing.JLabel jlAzulFalta4;
    private javax.swing.JLabel jlAzulPontos;
    private javax.swing.JLabel jlLuta;
    private javax.swing.JLabel jlRound;
    private javax.swing.JLabel jlTempo;
    private javax.swing.JLabel jlVermelhoFalta1;
    private javax.swing.JLabel jlVermelhoFalta2;
    private javax.swing.JLabel jlVermelhoFalta3;
    private javax.swing.JLabel jlVermelhoFalta4;
    private javax.swing.JLabel jlVermelhoPontos;
    private javax.swing.JPanel jpAvisos;
    private javax.swing.JPanel jpAzulArbitro1;
    private javax.swing.JPanel jpAzulArbitro2;
    private javax.swing.JPanel jpAzulArbitro3;
    private javax.swing.JPanel jpAzulArbitro4;
    private javax.swing.JPanel jpAzulFaltas2;
    private javax.swing.JPanel jpAzulPontos;
    private javax.swing.JPanel jpLuta;
    private javax.swing.JPanel jpMostradores;
    private javax.swing.JPanel jpRound;
    private javax.swing.JPanel jpTempo;
    private javax.swing.JPanel jpVermelhoArbitro1;
    private javax.swing.JPanel jpVermelhoArbitro2;
    private javax.swing.JPanel jpVermelhoArbitro3;
    private javax.swing.JPanel jpVermelhoArbitro4;
    private javax.swing.JPanel jpVermelhoFaltas;
    private javax.swing.JPanel jpVermelhoPontos;
    // End of variables declaration//GEN-END:variables

}
